【例子介绍】
【相关图片】
【源码结构】
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, ComCtrls, Grids, DBGrids, ExtCtrls, DBCtrls, Mask; type TForm1 = class(TForm) TreeView1: TTreeView; ImageList1: TImageList; DataSource1: TDataSource; DBEdit1: TDBEdit; Label1: TLabel; Label2: TLabel; DBEdit2: TDBEdit; Table1: TTable; Label3: TLabel; DBNavigator1: TDBNavigator; Label4: TLabel; DBEdit3: TDBEdit; DBEdit4: TDBEdit; function GetFieldList: TStringList; procedure FormCreate(Sender: TObject); procedure TreeView1Change(Sender: TObject; Node: TTreeNode); procedure DataSource1StateChange(Sender: TObject); procedure Table1AfterInsert(DataSet: TDataSet); procedure Table1BeforeDelete(DataSet: TDataSet); procedure Table1BeforeEdit(DataSet: TDataSet); procedure Table1AfterDelete(DataSet: TDataSet); procedure Table1AfterPost(DataSet: TDataSet); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; FieldList: TStringList; implementation uses TreeFunc; {$R *.DFM} function TForm1.GetFieldList: TStringList; begin FieldList.clear; FieldList.add(Table1.fieldbyname('Country').asstring); FieldList.add(Table1.fieldbyname('city').asstring); FieldList.add(Table1.fieldbyname('Company').asstring); Result := FieldList; end; procedure TForm1.FormCreate(Sender: TObject); begin FieldList := TStringList.create; TreeView1.items.BeginUpdate; Table1.first; while not Table1.eof do begin TreeAddItem(TreeView1, GetFieldList, Table1.getBookmark, false); Table1.next; end; FieldList.clear; TreeView1.Alphasort; TreeView1.items.Endupdate; //make first record selected: TreeView1.items[2].selected := true; end; procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); begin Datasource1.enabled := Node.data <> nil; if DataSource1.enabled then Table1.gotobookmark(node.data); end; procedure TForm1.DataSource1StateChange(Sender: TObject); var ItemList: TStringList; Node: TTreeNode; begin end; procedure TForm1.Table1AfterInsert(DataSet: TDataSet); begin FieldList.clear; end; procedure TForm1.Table1BeforeDelete(DataSet: TDataSet); begin GetFieldList; end; procedure TForm1.Table1BeforeEdit(DataSet: TDataSet); begin GetFieldList; end; procedure TForm1.Table1AfterDelete(DataSet: TDataSet); var CascadeDeleteLevel: Integer; begin CascadeDeleteLevel := 0; TreeDeleteItem(TreeView1, FieldList, CascadeDeleteLevel); end; procedure TForm1.Table1AfterPost(DataSet: TDataSet); begin TreeView1.items.beginUpdate; if FieldList.count > 0 then TreeDeleteItem(TreeView1, Fieldlist, 0); TreeView1.selected := TreeAddItem(TreeView1, GetFieldlist, Table1.getbookmark, True); TreeView1.items.endUpdate; end; end.
评论